﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Cqrs.Infrastructure;
using Cqrs.Infrastructure.Aggregate;

namespace Harmonic.Domain
{
    public class UserCreated : EventWithState
    {
        public Guid Id { private set; get; }
        public string Username { private set; get; }
        public string Email { private set; get; }
        public string Password { private set; get; }

        public UserCreated(Guid id, string username, string email, string password)
        {
            Id = id;
            Username = username;
            Email = email;
            Password = password;
        }
    }

    public class UserDeleted : EventWithState
    {
        public Guid Id { private set; get; }
        public string Reason { private set; get; }
        public DateTime DateDeleted { private set; get; }
        public UserDeleted(Guid id, string reason, DateTime dateDeleted)
        {
            Id = id;
            Reason = reason;
            DateDeleted = dateDeleted;
        }
    }

    public class UserMadePriority : EventWithState
    {
        public string Reason { private set; get; }
        public Guid Id { private set; get; }
        public UserMadePriority(Guid id, string reason)
        {
            Id = id;
            Reason = reason;
        }
    }

    public class UserMadeActive : EventWithState
    {
        public Guid Id { private set; get; }
        public string Reason { private set; get; }
        public UserMadeActive(Guid id, string reason)
        {
            Id = id;
            Reason = reason;
        }
    }

}

